﻿#define _CRT_SECURE_NO_WARNINGS 1
#include"BinarySearchTree.h"

//int main()
//{
//	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
//	BSTree<int> bt;
//	for (auto e : a)
//	{
//		bt.InsertR(e);
//	}
//	bt.InOrder();
//
//	bt.EraseR(14);
//	bt.InOrder();
//
//	bt.EraseR(3);
//	bt.InOrder();
//
//	bt.EraseR(8);
//	bt.InOrder();
//
//	for (auto e : a)
//	{
//		bt.EraseR(e);
//		bt.InOrder();
//	}
//
//	return 0;
//}

//int main()
//{
//	int a[] = { 8, 3, 1, 10, 6, 4, 7, 14, 13 };
//	key::BSTree<int> bt;
//	for (auto e : a)
//	{
//		bt.InsertR(e);
//	}
//	bt.InOrder();
//
//	key::BSTree<int> copy(bt);
//	copy.InOrder();
//}

//int main()
//{
//	kv::BSTree<string, string> dict;
//	dict.Insert("sort", "");
//	dict.Insert("left", "");
//	dict.Insert("right", "ұ");
//	dict.Insert("insert", "");
//	dict.Insert("key", "ؼ");
//
//	string str;
//	while (cin>>str)
//	{
//		kv::BSTreeNode<string, string>* ret = dict.Find(str);
//		if (ret)
//		{
//			cout << ret->_value << endl;
//		}
//		else
//		{
//			cout << "޴˵" << endl;
//		}
//	}
//
//	return 0;
//}

//int main()
//{
//	
//	string arr[] = {"苹果", "西瓜", "苹果", "西瓜", "苹果", "苹果", "西瓜", "苹果", "香蕉", "苹果", "香蕉"};
//	kv::BSTree<string, int> countTree;
//	for (auto& e : arr)
//	{
//		kv::BSTreeNode<string, int>* ret = countTree.Find(e);
//		if (ret == nullptr)
//		{
//			countTree.Insert(e, 1);
//		}
//		else
//		{
//			ret->_value++;
//		}
//	}
//
//	countTree.InOrder();
//
//	return 0;
//}

